home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / c / sozobon / sozbin14.zoo / sozdistr / doc / binary.doc / jas.chg < prev    next >
Encoding:
Text File  |  1995-09-03  |  6.5 KB  |  164 lines

  1. jas 2.00 eXtended Version
  2. last modifications - by Thorsten Roskowetz - 
  3.  
  4. version x12
  5. Mar 04 1995 Volker Seebode (VS)
  6.        - fixed 'bchg', 'bclr', 'bset' 'btst' and 'stop' instruction
  7.        - added handling of pc-relative reference to label ('label(pc)')
  8.        - cleaned up prototypes
  9.  
  10. version x11
  11. Mar 04 1995
  12.        - fixed a problem with the 'movep' instruction
  13.  
  14. version x10
  15. Nov 28 1994
  16.         - applied LABELDIFF patch by EAJ to support 'label-label'
  17.  
  18. version x10
  19. Nov 28 1994
  20.     - applied LABELDIFF patch by EAJ to support 'label-label'
  21.       as a valid operand.  Both operands must be in the same
  22.       source file and the same segment as this is 'quick hack'
  23.       implementation
  24.     - removed the old 'dc.w Label' patch that was used by HCC
  25.       to produce shorter switch-tables (don't use this JAS with
  26.       older versions of the SozobonX compiler!)
  27.  
  28. version x9
  29. Nov 01 1994
  30.     - fixed a couple of serious bugs in the branch optimization
  31.       code (one of them I introduced myself back in x7); as a
  32.       side-effect the statistics shown in verbose mode should be
  33.       correct now
  34.     - added all missing string-escape-sequences (as per ANSI)
  35.     - changed handling of numerical constants; as a consequence a
  36.       leading "0" implies an octal constant, "0x" a hex constant
  37.       (the old prefixes '$' and '@' still work of course)
  38.     - small performance tweaks
  39.  
  40. version x8
  41. Oct 24 1994
  42.     Since version 1.2 jas contains changes for minix:
  43.     - input compatibility with ack
  44.     - short absolute addressing mode
  45.     - explicit pc-relative addressing mode (involving text labels)
  46.     This version of SozobonX's jas is compiled to use them...
  47.  
  48. version x7
  49. Oct 20 1994
  50.     bug fixed:
  51.         jas will no longer use a 'bsr' when the destination
  52.         isn't within the appropriate +/-32K range (this was
  53.         a problem with the branch optimization algorithm)
  54.     bug fixed:
  55.         '~'-operator will work correctly now
  56.     changed sources so that jas will compile with MiNTlibs and
  57.         with c68 if requiered (new file proto.h); fixed most
  58.         of the more serious warnings c68 reports
  59.  
  60. ----
  61. version x6
  62. Jul 21 1994
  63.     changes by Jerry Geiger
  64.         small bugfixes and std interface 
  65.  
  66. version x5
  67. ??? ?? 199?
  68.     changes by Jerry Geiger
  69.  
  70. ----
  71. Änderungen an JAS, vorgenommen von Holger Weets
  72. Stand: 18.11.92
  73.  
  74. 2.0 -> 2.00x1:
  75.    - mit neuem Compiler, Optimizer und XDLibs übersetzt
  76.       --> statt 38 KB jetzt nur noch 32 KB lang
  77.           (noch ohne peephole changes)
  78.    - Versions-Meldung auf die anderen Komponenten angepasst
  79.    - Fehlermeldungen an die des Compilers angepasst, damit daß
  80.      Error-Handling unter C-Desk besser läuft
  81.    - statt 'bra.b' kann jetzt richtigerweise auch 'bra.s' geschrieben
  82.      werden. Gleiches gilt für alle '.b' Endungen.
  83.    - Datei Ein-/Ausgabe umgeschrieben, ist jetzt wesentlich schneller und
  84.      kürzer; jetzt ist er (immer noch ohne peephole changes) nur noch
  85.      28 KB lang ...
  86.    - JAS liest jetzt auch großgeschriebene Kommandos ein,
  87.      wie z.B. "MOVE.L D0, A0".
  88.      Vorgesehen war das bereits, aber funktioniert hat es nicht...
  89.    - Die Angabe von '-o <OUTFILE>' ist jetzt WIRKLICH optional; auch das
  90.      war bereits vorgesehen, funktionierte aber nicht.
  91.    - "dc.w <LABEL>" erzeugt einen Wortbreiten Eintrag in der Datei,
  92.      welcher nicht reloziert werden muß, und den Abstand von der
  93.      aktuellen Position zur Adresse des Labels angibt.
  94.      Dies ist äußerst vorteilhaft für die Erzeugung kurzer Programme, denn
  95.      XCC V2.00x5+ erzeugt dc's bei Switches in Form von Sprungtabellen,
  96.      bisher als ".dc.l <LABEL>, jetzt als ".dc.w <LABEL>"
  97.      -> die Tabelle wird nur halb so lang
  98.      -> der Zugriff ist schneller und kürzer
  99.      -> es können evtl. mehr kurze Branches erzeugt werden
  100.  
  101.    - erkennt jetzt die Pseudo - Ops
  102.         CODE (*) TEXT, .TEXT        -- Text-Segment-Anfang, optional mit Namen
  103.         DATA,  .DATA                -- Data-Segment-Anfang, optional mit Namen
  104.         BSS .BSS                    -- BSS-Segement-Anfang, optional mit Namen
  105.         XDEF (*), GLOBL, .GLOBL     -- Symbol exportieren, Namensliste erlaubt
  106.         XREF (*)                    -- Symbol importieren, Namensliste erlaubt
  107.                                        (wurde nur aus Kompatibilitäts-
  108.                                        Gründen aufgenommen und ist nicht
  109.                                        notwendig, tut auch nichts)
  110.         END, .END                   -- Assemblierung beenden
  111.         ORG, .ORG                   -- aktuelle Adresse setzen
  112.         EVEN, .EVEN                 -- nachfolgende Daten auf gerade Adresse
  113.         EQU, .EQU                   -- Zuweisung <name> = <wert>
  114.         DC, .DC                     -- nachfolgende Daten speichern
  115.         DS, .DS                     -- Bytes reservieren
  116.         COMM, .COMM                 -- Größe eines externen Symbols
  117.                                        definieren
  118.     Die mit (*) gekennzeichneten Pseudo-Ops habe ich aus Kompatibilitäts-
  119.     Gründen ergänzt.
  120.     Auch hier ist die Groß-/Kleinschreibung egal.
  121. 2.00x1 -> 2.00x2:
  122.    - mit den neusten Komponenten übersetzt, jetzt auch mit Peepholechanges
  123.      ->nur noch 25 KB...
  124.    - wenn eine leere Datei übersetzt werden sollte (leere Segmente, also
  125.      nur Pseudo-Ops), dann schrieb jas den Datenträger bis an den Rannd
  126.      voll, was bei einer Festplatte schon etwas dauern konnte...
  127.      Behoben.
  128. 2.00x2 -> 2.00x3:
  129.    - PseudoOp "PUBLIC" wird erkannt (ebenfalls Kompatibilität)
  130.    - wenn lokale Symbole in die Tabelle aufgenommen werden sollen (-L), dann
  131.      werden bei Level 1 jetzt nicht mehr nur die aussortiert, die mit einem
  132.      'L' beginnen, sondern auch solche, die mit einem 'T' beginnen (der TOP
  133.      erzeugt solche schon immer, aber Tony hat Joe davon wohl nichts erzählt)
  134. 2.00x3 -> 2.00x4:
  135.    - neue Option '-e ERRORFILE' eingebaut; Fehlermeldungen werden auf den
  136.      Bildschirm und in die Datei ERRORFILE geschrieben
  137.  
  138.  
  139. ANMERKUNGEN:
  140.    - JAS kann auch C-Kommantare (/* ... */)
  141.    - '@' ist das Prefix fuer Oktal-Konstanten
  142.    - '$' ist das Prefix fuer Hex-Konstanten
  143.    - '<<' und '>>' werden erkannt (Shift-Operation)
  144.    - pro Ausdruck ist nur ein Label erlaubt (warum ?)
  145.  
  146.  
  147. BUGS:
  148.    - jsr LABEL(pc)
  149.      wird nicht angemeckert, wenn LABEL nicht in der selben Datei
  150.      definiert ist, funktioniert aber trotzdem nicht!
  151.    - move.X LABEL(pc, d0.w), Y
  152.      funktioniert nicht, move.X 0(pc, d0.w), Y aber wohl
  153.    - pea 1000
  154.      erzeugt nicht, wie es sein sollte, absolute short, sondern
  155.      absolute long ...
  156.  
  157. FEHLT NOCH:
  158.    - die Erkennung dessen, was nun eigentlich in einer Zeile steht,
  159.      ist immer noch viel zu kompliziert
  160.      (JAS ist mit LEX und YACC geschrieben, was bei einem Assembler-
  161.      Scanner nun wirklich nicht nötig ist, und außerdem viel zu
  162.      langsam und lang)
  163.  
  164.